#pragma once
//#include "../../sp6_pcie_lib/sp6_pcie_drv/sp6_pcie_drv.h"
//#pragma comment(lib,"../../sp6_pcie_lib/x64/Debug/sp6_pcie_drv.lib")

#include "sp6_pcie/sp6_pcie_drv.h"
//#pragma comment(lib,"sp6_pcie/sp6_pcie_drv_v3_02.lib")
#pragma comment(lib,"sp6_pcie/sp6_pcie_drv_v3_03.lib")

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;


/* CPCI_Dev class definition */  
class CPCI_Dev
{
public:
	BOOL myPCI_Init();
	void myPCI_Close();
	u32 myPCI_GetDrvVersion();
	BOOL myPCI_MemByte_Write(UCHAR addr, UCHAR dwData);
	BOOL myPCI_MemByte_Read(UCHAR addr, PUCHAR lpData);
	BOOL read_dw(u16 addr, u32* lpData);
	BOOL write_dw(u16 addr, u32 dwData);
	BOOL myPCI_Register_Int_Func(SP6_PCIE_INT_ROUTINE iIntRoutine);
	void Send_CMD_To_DSP(u16 type, u16 w1, u16 w2, u16 w3, u16 w4);
	void Get_CMD_Back_From_FPGA(u16 *p_type, u16 *p_w1, u16 *p_w2, u16 *p_w3, u16 *p_w4);
	void Get_Data_From_DSP(u16 *p_type, u16 *p_w1, u16 *p_w2, u16 *p_w3, u16 *p_w4);
	BOOL is_open;
	BOOL is_ready();
	CPCI_Dev(void);
	~CPCI_Dev(void);
};

